package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcGuoKangClient;
import com.csun.cmny.provider.model.domain.DmcGuoKangDevice;
import com.csun.cmny.provider.model.dto.guokang.GuoKangClientQuery;
import com.csun.cmny.provider.model.vo.guokang.GuoKangClientVo;
import com.csun.cmny.provider.model.vo.guokang.GuoKangCsunSleepVo;
import com.csun.cmny.provider.model.vo.guokang.GuoKangReportVo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2020-12-09 17:29
 * @Description:
 */
public interface DmcGuoKangClientService extends IService<DmcGuoKangClient> {

    /**
     * save dmc guo kang client
     *
     * @param dmcGuoKangClient
     * @param loginAuthDto
     *
     * @return  the int.
     */
    Integer save(DmcGuoKangClient dmcGuoKangClient, LoginAuthDto loginAuthDto);

    /**
     * 根据Id删除
     *
     * @param id
     *
     * @return
     */
    Integer deleteById(Long id);

    /**
     * 查询列表 - 分页
     *
     * @param guoKangClientQuery
     *
     * @return
     */
    List<GuoKangClientVo> queryListWithPage(GuoKangClientQuery guoKangClientQuery);

    /**
     * 绑定
     *
     * @param dmcGuoKangDevice
     * @param loginAuthDto
     *
     * @return
     */
    Integer bind(DmcGuoKangDevice dmcGuoKangDevice, LoginAuthDto loginAuthDto);

    /**
     * 解绑
     *
     * @param dmcGuoKangDevice
     *
     * @return
     */
    Integer untied(DmcGuoKangDevice dmcGuoKangDevice);

    /**
     * 上传床垫报表
     *
     * @param month
     *
     * @return
     */
    List<GuoKangReportVo> uploadSleepMonthReport(String month);

    /**
     * 查询未绑定的床垫
     *
     * @return
     */
    List<GuoKangCsunSleepVo> queryNotBindCsunSleepList();

    /**
     * 查询国康用户编号
     *
     * @param deviceNo  the device no
     *
     * @return  the user id
     */
    String selectByDeviceNo(String deviceNo);
}
